﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ecommerce.Web.Code;
using Ecommerce.Utils;
using Ecommerce.Model;
using System.Web.Security;

namespace Ecommerce.Web.Cliente
{
    public partial class Login : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void lbContinue_Click(object sender, EventArgs e)
        {
            Page.Validate("PrimeiraCompra");
            if (Page.IsValid)
            {
                string cpfCnpj = txtCPFCNPJ.Text;
                string tipoUsuario = hddTipoUsuario.Value;
                Response.Redirect("~/Cliente/CadastroPF.aspx?tpUsu=" + tipoUsuario + "&cod=" + cpfCnpj);
            }
        }

        protected void lbLogin_Click(object sender, EventArgs e)
        {
            //Response.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            //Response.Redirect("https://wwws5.hsbc.com.br/OFB-BOL-CNR/servlets/GeraBoleto?ServletState=10&codigoCedente=4320832&dataVencimento=03/06/2012&valorDocumento=206.20&numeroParcela=&totalParcelas=&numeroDocumento=4&L1=Senhor(a) Caixa, favor seguir as instruções abaixo:&L2=1. Não receber este documento após a data de seu vencimento&L3=2. Valores expressos em Reais&L4=3. Não receber por depósito bancário&L5=Bambozzi Soldas Ltda&unidadeCedente=Bambozzi Soldas Ltda&numeroDocumento=4&nomeSacado=Marcos&cpfCnpjSacado=30898874874&enderecoSacado=Al.&numeroSacado=369&complementoSacado=321&cepSacado=06475050&bairroSacado=aaa&cidadeSacado=asasasa&estadoSacado=AC");

            Page.Validate("Login");
            if (Page.IsValid)
            {
                tb_pes_pessoa pessoa = PessoaModel.Instance.Login(txtEmail.Text, txtSenha.Text);

                if (pessoa != null)
                {
                    Session["usuario"] = pessoa;
                    FormsAuthentication.RedirectFromLoginPage(pessoa.pes_idt_pessoa.ToString(), false);
                }
                else
                {
                    spErro.Visible = true;
                }
            }
        }

        protected void cvCpfCnpj_ServerValidate(object source, ServerValidateEventArgs args)
        {
            if (ValidarDocumento.CPF(args.Value))
            {
                if (PessoaFisicaModel.Instance.CPFCadastrado(args.Value.Replace(".", "").Replace("-", "")))
                {
                    args.IsValid = false;
                    cvCpfCnpj.ErrorMessage = "CPF já cadastrado";
                    return;
                }
                else
                {
                    hddTipoUsuario.Value = "pfi";
                    args.IsValid = true;
                    return;
                }
            }

            if (ValidarDocumento.CNPJ(args.Value))
            {
                if (PessoaJuridicaModel.Instance.CNPJCadastrado(args.Value))
                {
                    args.IsValid = false;
                    cvCpfCnpj.ErrorMessage = "CNPJ já cadastrado";
                    return;
                }
                else
                {
                    hddTipoUsuario.Value = "pju";
                    args.IsValid = true;
                    return;
                }
            }

            cvCpfCnpj.ErrorMessage = "Informe um CPF ou CNPJ válido";
            args.IsValid = false;
        }

        protected void lbLembrarSenha_Click(object sender, EventArgs e)
        {
            Page.Validate("Lembrar");
            if (Page.IsValid)
            {
                tb_pes_pessoa pessoa = PessoaModel.Instance.ObterPessoaPorLogin(txtEmail.Text);
                if (pessoa == null)
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "alertaLembrar", "alert('E-mail não encontrado em nossa base de dados');", true);
                }
                else
                {
                    new Email().LembrarSenha(txtEmail.Text, pessoa.pes_des_senha);
                    ClientScript.RegisterStartupScript(this.GetType(), "alertaLembrar", "alert('E-mail com a senha enviado com sucesso. Verifique seu email em alguns minutos.');", true);
                }
            }
        }
    }
}